As computers have developed to provide greater capabilities at greater speeds, the techniques for interacting with computers have also become much simpler. For example, icons provide pictorial representations of functions which may be executed by a computer and allow a user to easily access a function with the simple click of a mouse or stroke of a keyboard key. While icons provide an understandable interface, icons still require the user to perform the step of opening a window before additional information may be gained or functions may be performed. Furthermore, while icons provide pictorial representations of an application or even a memory sub-system, such as a disk drive, an icon is not able to provide additional information about the contents of the object with which it corresponds. To access such information, an external user must open a window corresponding to the icon and pull down a menu which allows for an eventual disclosure of the information.
In addition to icons, many current software programs use realistic representations of objects to take advantage of a user's experience with the physical world. Therefore, rather than present the user with a series of panels and window frames or pull-down menus, a software program for implementing an application may present a realistically-rendered object which is placed directly on a desktop or other environment. While such realistic representations enable a user to more easily interface with a computer, the applications which implement the realistically-rendered objects are limited by the protocols required by a development system in which the object is implemented. These limitations are especially apparent in filing systems in current operating systems.
In current operating systems, filing systems are typically implemented as a desk-top model based on an interface and a file system structure. Generally, the file system structure is mapped to that of the graphical environment in a direct manner. Stated another way, the storage structure of the graphical user interface is, for the most part, the same as that of the file system. For example, storage structures in the Windows '95 operating system developed by Microsoft are stored in folders which correspond to a directory structure of the file system. In the filing system in this operating system, as well as the real world, an object must exist somewhere and can only exist in one place. Such a construction limits a user's actions as they are forced to store objects in a single place and are not able to store them in multiple containers.
In an attempt to overcome the limitations discussed above, the Windows '95 operating system implemented a "shortcut" function. Shortcut functions allow a user to create a representation, but not a copy, of an object to another storage space. While such functions are useful, the user is forced to manually move the object to each desired storage space. Such manual movements can be time consuming and may result in inaccuracies in the filing system, especially when a user desires to consolidate a large number of objects in a single space and the objects are scattered across many data structures. When using the shortcut functions of Windows '95, the user is forced to open each data structure and access the desired folders or files individually. Furthermore, a user's actions on the representation which is created by the shortcut function is confined to the representation. For example, a delete action will be performed only on the representation, and not on the object itself. Other examples of operations which perform functions similar to the "shortcut" functions of Windows '95 is the alias function in a Macintosh operating system and a "shadow" function in an OS/2 operating system. It should be noted that if a source file is moved, the link, shortcut, alias, and shadow functions will no longer allow a user to access a desired file.
In a similar vein, Lotus Notes, manufactured by Borland, allows a user to selectively categorize mail messages in a single container. After a categorization operation, a user is then able to view only a selected category. While the Lotus Notes application provides the ability of a user to categorize mail into desired categories which are not necessarily dependent on a data structure of the operating system in which it is implemented, the Lotus Notes application is limited to categorizing contents within a single container. Furthermore, each object must be categorized independently for each object is limited by a type of categories which may be otherwise established automatically.
While current data processing applications have recognized a need for greater flexibility in filing system structures, the solutions which have been developed are problematic for many reasons. Each of the systems described above still requires a user to function within the constraints of an operating system which limits a manner in which data may be stored in a filing system and a manner in which categorization may be performed. As the file systems described above have many constraints which limit a user's actions, require extraneous actions, or increase a memory load of the user, it is apparent that there is a need for a more flexible filing system in a graphical user interface of a data processing system.